﻿using System;
using System.Collections.Generic;
using Neturion.Dados;

namespace Neturion.IRepositorios
{
    public interface IRepositorioPessoa : IRepositorio<Pessoa, int>
    {
        IList<Pessoa> ObterTodos(int inicio, int quantidade, int quantidadeMinima, string nomeRazaoSocial,
                                        string apelidoFantasia, string nomeReduzido, string cpfCnpj, Midia midia,
                                        EnumTipoPessoa enumTipoPessoa, DateTime? dataNascimentoAbertura,
                                        DateTime? inicioVigencia, DateTime? fimVigencia);
        IList<Pessoa> ObterTodos(int inicio, int quantidade, int quantidadeMinima, string nomeRazaoSocial,
                                      string apelidoFantasia, string nomeReduzido, string cpfCnpj, Midia midia,
                                      EnumTipoPessoa enumTipoPessoa, 
                                      EnumTipoSexo enumTipoSexo, 
                                      EnumEscolaridade enumEscolaridade,
                                      EnumEstadoCivil enumEstadoCivil,
                                      DateTime? dataNascimentoAberturaDe,DateTime? dataNascimentoAberturaAte,
                                      DateTime? cadastroDe, DateTime? cadastroAte,
                                      DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte,
                                      DateTime? fimVigenciaDe, DateTime? fimVigenciaAte);
        Pessoa ObterPorCpfCnpj(string cpfCnpj);
        IList<Pessoa> ObterPorDescricao(string descricao);
    }
}